package com.computerManagementSystem.service;

import com.computerManagementSystem.mapper.ThingMapper;
import com.computerManagementSystem.pojo.BorrowThing;
import com.computerManagementSystem.pojo.Things;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author 赖志宇
 * @date 2020/6/27 1:41
 */
@Service("ThingService")
public class ThingServiceImpl implements ThingsService {
    @Resource
    private ThingMapper thingMapper;

    /**
     * @param things 要添加的物资对象
     * @description 添加新的物资
     */
    @Override
    public void addNewThing(Things things) {
        thingMapper.insertThingForm(things);
    }

    /**
     * @param borrowThing 借用的具体信息
     * @description 借用物资
     */
    @Override
    public void borrowThing(BorrowThing borrowThing) {
        thingMapper.insertBorrowThingForm(borrowThing);
    }

    /**
     * @param things 物资的具体信息
     * @description 改变物资名称剩余数量等内容
     */
    @Override
    public void modifyThing(Things things) {
        thingMapper.updateThingForm(things);
    }

    /**
     * @param borrowThing 要归还物资的具体信息
     * @description 归还物资
     */
    @Override
    public void returnThing(BorrowThing borrowThing) {
        thingMapper.updateBorrowThingForm(borrowThing);
    }

    /**
     * @param page  当前页面
     * @param limit 每次加载多少条数据
     * @return limit条借用信息
     * @description 管理员查看借用历史
     */
    @Override
    public List<BorrowThing> getMemberBorrowThingList(int page, int limit) {
        int start = (page - 1) * limit;
        return thingMapper.getBorrowThingList(start, limit);
    }


    /**
     * @return 借用列表的数量
     * @description获取借用信息的总数
     */
    public int getBorrowThingListCount() {
        return thingMapper.queryBorrowThingNum();
    }


    /**
     * @param id 成员id
     * @return 一个正在借用物品的列表
     * @description 成员查看正在借用的物品
     */
    @Override
    public List<BorrowThing> getMemberSelfBorrowingThingList(String id) {
        return thingMapper.getBorrowingThingListById(id);
    }

    /**
     * @param page  目前的页数
     * @param limit 每次返回数量
     * @return limit条物资信息
     * @description 返回物资列表
     */
    @Override
    public List<Things> getThingList(int page, int limit) {
        int start = (page - 1) * limit;
        return thingMapper.getThingsList(start, limit);
    }

    /**
     * @description 物资列表数量
     * @return 物资列表数量
     */
    public int getThingListNum(){
        return thingMapper.queryThingNum();
    }
    /**
     * @description 返回可以借用的物资表
     * @param page  目前的页数
     * @param limit 每次返回数量
     * @return limit条物资信息
     *
     */
    @Override
    public List<Things> getCanBorrowThingList(int page, int limit) {
        int start = (page - 1) * limit;
        return thingMapper.getThingsListCanBorrow(start,limit);
    }

    /**
     * 返回可借用的物资数量
     * @return 可借用物资列表数量
     */
    public int getCanBorrowNum(){
        return thingMapper.queryThingCanBorrowNum();
    }
}
